package cn.kent.simple;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/**
 * 933. 最近的请求次数
 * 1.使用队列
 * 2.使用数组模拟队列
 */
public class RecentCounter {
    private Queue<Integer> queue;

    public RecentCounter() {
        queue = new LinkedList<>();
    }

    public int ping(int t) {
        queue.add(t);
        while (queue.peek() < t - 3000) {
            queue.poll();
        }
        return queue.size();
    }

//    private List<Integer> queue;
//
//    public RecentCounter() {
//        queue = new ArrayList<>();
//    }
//
//    public int ping(int t) {
//        int sum = 1;
//        for (int i = queue.size() - 1; i > -1; i--) {
//            final Integer poll = queue.get(i);
//            if (t - poll <= 3000) {
//                sum++;
//                continue;
//            }
//            break;
//        }
//        queue.add(t);
//        return sum;
//    }

    public static void main(String[] args) {
        final RecentCounter counter = new RecentCounter();
        List<Integer> list = new ArrayList<>();
        list.add(counter.ping(1));
        list.add(counter.ping(100));
        list.add(counter.ping(3001));
        list.add(counter.ping(3002));
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }
}
